package com.atwisdom.star.common.actionType;

/**************************************************************************************
 * 方法枚举
 *
 **************************************************************************************/
public enum PlannerActionType {

    //region ******************对应PlannerConfigurationBslServiceImpl中的方法*urlPath = "/planner/configuration"*****************
    PLANNER_MODEL_ADD("ADD", "addModel", "添加模型"),
    PLANNER_MODEL_ADD_BATCH("ADD_BATCH", "addBatchModel", "批量添加模型"),
    PLANNER_MODEL_DELETE_BY_CLASSNAME("DELETE_BY_CLASSNAME", "deleteModelByClassName", "按className删除"),
    PLANNER_MODEL_DELETE("DELETE", "deleteModel", "按className删除"),
    PLANNER_MODEL_DELETE_BATCH("DELETE_BATCH", "deleteBatchModel", "按className删除"),
    PLANNER_MODEL_UPDATE("UPDATE", "updateModel", "更新模型"),
    PLANNER_MODEL_UPDATE_CLASS_NAME("UPDATE_CLASS_NAME", "updateModelClassName", "更新模型类名"),
    PLANNER_MODEL_QUERY("QUERY", "queryModel", "查询模型"),
    PLANNER_MODEL_QUERY_BY_CLASSNAME("QUERY_BY_CLASSNAME", "queryModelByClassName", "按类名称查询模型"),
    PLANNER_MODEL_QUERY_BY_CLASSNAMES("QUERY_BY_CLASSNAMES", "queryModelByClassNames", "按类名称列表查询模型列表"),
    PLANNER_MODEL_QUERY_BY_PAGE("QUERY_BY_PAGE", "queryModelByPage", "分页查询"),
    // PLANNER_MODEL_QUERY_INFO_BY_PAGE("QUERY_INFO_BY_PAGE", "queryModelInfoByPage", "分页查询摘要"),
    PLANNER_MODEL_LIST_ALL("LIST_ALL", "listAllModel", "无条件查询所有模型信息"),
    PLANNER_MODEL_LIST_ALL_BY_PAGE("LIST_ALL_BY_PAGE", "listAllModelByPage", "分页无条件查询模型信息"),
    // PLANNER_MODEL_LIST_ALL_INFO("LIST_ALL_INFO", "listAllModelInfo", "不分页无条件查询摘要模型信息"),
    // PLANNER_MODEL_LIST_ALL_INFO_BY_PAGE("LIST_ALL_INFO_BY_PAGE", "listAllModelInfoByPage", "分页无条件查询摘要模型信息"),
    //endregion
    //region ******************对应PlannerRuntimeBslServiceImpl中的方法*urlPath = "/planner/runtime"*****************
    PLANNER_INSTANCE_ADD("PLANNER_ADD", "addInstance", "添加实例"),
    PLANNER_INSTANCE_ADDITIONAL_INSTANCE("ADDITIONAL_INSTANCE", "additionalInstance", "追加属性"),
    PLANNER_INSTANCE_DELETE_BY_CLASSNAME("PLANNER_DELETE_BY_CLASSNAME", "deleteInstanceByClassName", "按className删除"),
    PLANNER_INSTANCE_DELETE("PLANNER_DELETE", "deleteInstance", "通用删除"),
    PLANNER_INSTANCE_DELETE_BATCH("PLANNER_DELETE_BATCH", "deleteBatchInstance", "批量删除"),
    PLANNER_INSTANCE_UPDATE("PLANNER_UPDATE", "updateInstance", "更新"),
    PLANNER_INSTANCE_QUERY("PLANNER_QUERY", "queryInstance", "查询实例"),
    PLANNER_INSTANCE_QUERY_BY_CLASSNAME("PLANNER_QUERY_BY_CLASSNAME", "queryInstanceByClassName", "按类名称查询实例"),
    PLANNER_INSTANCE_QUERY_BY_PAGE("PLANNER_QUERY_BY_PAGE", "queryInstanceByPage", "分页查询"),
    PLANNER_INSTANCE_QUERY_INFO("PLANNER_QUERY_INFO", "queryInstanceInfo", "查询实例摘要"),
    PLANNER_INSTANCE_QUERY_INFO_BY_PAGE("PLANNER_QUERY_INFO_BY_PAGE", "queryInstanceInfoByPage", "分页查询实例摘要"),
    //endregion

    //region ******************对应PlannerVersionBslServiceImpl中的方法*urlPath = "/planner/version"*****************
    PLANNER_VERSION_UPGRADE("PLANNER_UPGRADE", "upgrade", "版本升级"),
    PLANNER_VERSION_PUBLISHED("PLANNER_PUBLISHED", "published", "模型发布"),
    PLANNER_VERSION_UNPUBLISHED("PLANNER_UNPUBLISHED", "unpublished", "模型取消发布"),
    PLANNER_VERSION_QUERY_INCLUDE_UNPUBLISHED("PLANNER_QUERY_INCLUDE_UNPUBLISHED", "queryIncludeUnpublished", "不分页查询包括未发布的"),
    PLANNER_VERSION_QUERY_INFO_INCLUDE_UNPUBLISHED("PLANNER_QUERY_INFO_INCLUDE_UNPUBLISHED", "queryInfoIncludeUnpublished", "简单查询"),
    PLANNER_VERSION_QUERY_INCLUDE_UNPUBLISHED_BY_PAGE("PLANNER_QUERY_INCLUDE_UNPUBLISHED_BY_PAGE", "queryIncludeUnpublishedByPage", "分页包括未发布的查询"),
    PLANNER_VERSION_QUERY_INFO_INCLUDE_UNPUBLISHED_BY_PAGE("PLANNER_QUERY_INFO_INCLUDE_UNPUBLISHED_BY_PAGE", "queryInfoIncludeUnpublishedByPage", "分页包括未发布查询，去除复杂字段");
    //endregion

    private final String code;
    private final String methodName;
    private final String description;

    public String getCode() {
        return code;
    }

    public String getMethodName() {
        return methodName;
    }

    public String getDescription() {
        return description;
    }

    PlannerActionType(String code, String methodName, String description) {
        this.code = code;
        this.methodName = methodName;
        this.description = description;
    }
}
